package com.tianqu.tms.dao;

import java.util.List;

import com.tianqu.tms.core.exception.TmsDaoException;
import com.tianqu.tms.dto.TransferFinanceInfoDto;
import com.tianqu.tms.entity.TransferFinanceInfo;

public interface TransferFinanceInfoDao {
	
	/**
	 * 评估插入
	 */
	public void updateFinanceInfoAtAssess(TransferFinanceInfoDto dto)throws TmsDaoException;
	
	/**
	 * 在打印流程表的时候向表中插入数据
	 * @param serial
	 * @throws TmsDaoException
	 */
	public void insertProcedure(TransferFinanceInfoDto dto)throws TmsDaoException;
	
	/**
	 * 判断是否存在相同流水号的车辆
	 * @param serial
	 * @return
	 * @throws TmsDaoException
	 */
	public boolean insertProcedureFlag(String serial)throws TmsDaoException;
	/**
	 * 查验部分更新财务表
	 * @param dto
	 * @throws TmsDaoException
	 */
	public void updateFinanceInfoAtCheck(TransferFinanceInfoDto dto)throws TmsDaoException;
	
	/**
	 * 库存更新财务表
	 * @param dto
	 * @throws TmsDaoException
	 */
	public void updateFinanceInfoAtMarket(TransferFinanceInfoDto dto)throws TmsDaoException;
	
	
    /**
     * 根据流水号得到过户收费信息
     * @param serial
     * @return
     * @throws TmsDaoException 
     */
	public TransferFinanceInfoDto findFinanceInfoByserial(String serial) throws TmsDaoException;
	/**
	 * 根据流水号更新过户收费信息
	 * @param dto
	 * @throws TmsDaoException 
	 */

	public void updateFinanceInfoPrice(TransferFinanceInfoDto dto) throws TmsDaoException;
	
	/**
	 * 新增入库初始化数据，生成serial
	 * @param serial
	 * @throws TmsDaoException
	 */
	public void insertFinanceByInner(String serial)throws TmsDaoException;
	public void updateFinanceInfoAtReback(TransferFinanceInfoDto dto) throws TmsDaoException;
	public void deleteFinanceInfoBySerial(String serial)throws TmsDaoException;
	public void updateTransferTime(TransferFinanceInfoDto dto) throws TmsDaoException;
	public void updateTransferCheckBackPrice(TransferFinanceInfoDto dto) throws TmsDaoException;
	public void updateChangePriceDate(TransferFinanceInfoDto dto) throws TmsDaoException;
	public void updateBackPriceDate(TransferFinanceInfoDto dto) throws TmsDaoException;
	
	public void updateAgencyPriceDate(TransferFinanceInfoDto dto) throws TmsDaoException;
	public void updateExtendedPriceDate(TransferFinanceInfoDto dto) throws TmsDaoException;
	public List getChargeInfoByPeriod(String startDate,String endDate) throws TmsDaoException;
	public List<TransferFinanceInfoDto> getFinaneInfoByPeriodLC(String startDate,String endDate,int userid) throws TmsDaoException;
	public List<TransferFinanceInfoDto> getFinaneInfoByPeriodJYP(String startDate,String endDate,int userid) throws TmsDaoException;
	public List<TransferFinanceInfoDto> getFinaneInfoByPeriodDB(String startDate,String endDate,int userid) throws TmsDaoException;
	public List<TransferFinanceInfoDto> getFinaneInfoByPeriodDBOut(String startDate,String endDate,int userid) throws TmsDaoException;
	public List<TransferFinanceInfoDto> getFinaneInfoByPeriodBG(String startDate,String endDate,int userid) throws TmsDaoException;
	public List<TransferFinanceInfoDto> getFinaneInfoByPeriodLCT(String startDate,String endDate,int userid) throws TmsDaoException;
	public List<TransferFinanceInfoDto> getFinaneInfoByPeriodJYPT(String startDate,String endDate,int userid) throws TmsDaoException;
	
	public void insertTransferFinanceInfo(TransferFinanceInfoDto dto) throws TmsDaoException ;
	
	public void updateTransferDataSyn40000(TransferFinanceInfoDto dto) throws TmsDaoException ;
	public void insertFinanceInfo(TransferFinanceInfoDto dto,int type,int checkPriceType) throws TmsDaoException ;

	public void updateFinanceInfoAtWXByCheckPrice(TransferFinanceInfoDto dto) throws TmsDaoException;
	public void updateFinanceInfoAtWXByTransferPrice(TransferFinanceInfoDto dto) throws TmsDaoException;
	public List<TransferFinanceInfo> findTransferFinanceList(String dateFrom,String dateTo) throws TmsDaoException;
	public List<TransferFinanceInfo> findTransferFinanceDeail0(String dateFrom,String dateTo) throws TmsDaoException;
	public List<TransferFinanceInfo> findTransferFinanceDeail1(String dateFrom,String dateTo, int priceType) throws TmsDaoException;
}
